@@ -17,8 +17,9 @@ from account.models import UserInfo  | 
            ||
| 17 | 17 | 
                from coupon.models import UserCouponInfo  | 
            
| 18 | 18 | 
                from member.models import (GoodsInfo, GoodsOrderInfo, MemberActivityContributionInfo, MemberActivityGroupShareInfo,  | 
            
| 19 | 19 | 
                MemberActivityInfo, MemberActivitySigninInfo, MemberActivitySignupInfo, RightInfo)  | 
            
| 20 | 
                -from utils.error.errno_utils import (MemberActivityStatusCode, MemberCouponStatusCode, MemberGoodStatusCode,  | 
            |
| 21 | 
                - MemberRightStatusCode, UserStatusCode)  | 
            |
| 20 | 
                +from utils.error.errno_utils import (MemberActivityContributionStatusCode, MemberActivityStatusCode,  | 
            |
| 21 | 
                + MemberCouponStatusCode, MemberGoodStatusCode, MemberRightStatusCode,  | 
            |
| 22 | 
                + UserStatusCode)  | 
            |
| 22 | 23 | 
                from utils.redis.connect import r  | 
            
| 23 | 24 | 
                from utils.redis.rkeys import MEMBER_SEND_COUPON_LIST, MEMBER_UPGRADE_INFO  | 
            
| 24 | 25 | 
                from utils.redis.rshot import get_member_shot_data  | 
            
                @@ -362,7 +363,7 @@ def activity_list(request):  | 
            ||
| 362 | 363 | 
                def activity_detail(request):  | 
            
| 363 | 364 | 
                     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            
| 364 | 365 | 
                     user_id = request.POST.get('user_id', '')
               | 
            
| 365 | 
                -    activity_id = request.POST.get('activity_id')
               | 
            |
| 366 | 
                +    activity_id = request.POST.get('activity_id', '')
               | 
            |
| 366 | 367 | 
                 | 
            
| 367 | 368 | 
                try:  | 
            
| 368 | 369 | 
                act = MemberActivityInfo.objects.get(activity_id=activity_id, status=True)  | 
            
                @@ -378,7 +379,7 @@ def activity_detail(request):  | 
            ||
| 378 | 379 | 
                def activity_signup(request):  | 
            
| 379 | 380 | 
                     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            
| 380 | 381 | 
                     user_id = request.POST.get('user_id', '')
               | 
            
| 381 | 
                -    activity_id = request.POST.get('activity_id')
               | 
            |
| 382 | 
                +    activity_id = request.POST.get('activity_id', '')
               | 
            |
| 382 | 383 | 
                     name = request.POST.get('name', '')
               | 
            
| 383 | 384 | 
                     phone = request.POST.get('phone', '')
               | 
            
| 384 | 385 | 
                 | 
            
                @@ -406,7 +407,7 @@ def activity_signup(request):  | 
            ||
| 406 | 407 | 
                def activity_signin(request):  | 
            
| 407 | 408 | 
                     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            
| 408 | 409 | 
                     user_id = request.POST.get('user_id', '')
               | 
            
| 409 | 
                -    activity_id = request.POST.get('activity_id')
               | 
            |
| 410 | 
                +    activity_id = request.POST.get('activity_id', '')
               | 
            |
| 410 | 411 | 
                 | 
            
| 411 | 412 | 
                # 校验用户是否存在  | 
            
| 412 | 413 | 
                try:  | 
            
                @@ -451,7 +452,7 @@ def activity_group_share(request):  | 
            ||
| 451 | 452 | 
                     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            
| 452 | 453 | 
                     share_user_id = request.POST.get('share_user_id', '')
               | 
            
| 453 | 454 | 
                     click_user_id = request.POST.get('click_user_id', '')
               | 
            
| 454 | 
                -    activity_id = request.POST.get('activity_id')
               | 
            |
| 455 | 
                +    activity_id = request.POST.get('activity_id', '')
               | 
            |
| 455 | 456 | 
                 | 
            
| 456 | 457 | 
                     iv = request.POST.get('iv', '')
               | 
            
| 457 | 458 | 
                     encryptedData = request.POST.get('encryptedData', '')
               | 
            
                @@ -514,11 +515,12 @@ def activity_group_share(request):  | 
            ||
| 514 | 515 | 
                def activity_contribute(request):  | 
            
| 515 | 516 | 
                     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            
| 516 | 517 | 
                     user_id = request.POST.get('user_id', '')
               | 
            
| 517 | 
                -    activity_id = request.POST.get('activity_id')
               | 
            |
| 518 | 
                +    activity_id = request.POST.get('activity_id', '')
               | 
            |
| 518 | 519 | 
                content_type = get_query_value(request, 'content_type', val_cast_type='int')  | 
            
| 519 | 520 | 
                     title = request.POST.get('title', '')
               | 
            
| 520 | 521 | 
                     content = request.POST.get('content', '')
               | 
            
| 521 | 522 | 
                images = get_query_value(request, 'images', val_cast_type='listjson')  | 
            
| 523 | 
                +    video_url = request.POST.get('video_url', '')
               | 
            |
| 522 | 524 | 
                 | 
            
| 523 | 525 | 
                # 校验用户是否存在  | 
            
| 524 | 526 | 
                try:  | 
            
                @@ -534,8 +536,46 @@ def activity_contribute(request):  | 
            ||
| 534 | 536 | 
                title=title,  | 
            
| 535 | 537 | 
                content=content,  | 
            
| 536 | 538 | 
                images=images,  | 
            
| 539 | 
                + video_url=video_url,  | 
            |
| 537 | 540 | 
                )  | 
            
| 538 | 541 | 
                 | 
            
| 539 | 542 | 
                     return response(data={
               | 
            
| 540 | 543 | 
                'contribution': contribution.data,  | 
            
| 541 | 544 | 
                })  | 
            
| 545 | 
                +  | 
            |
| 546 | 
                +  | 
            |
| 547 | 
                +@logit  | 
            |
| 548 | 
                +def activity_contribute_list(request):  | 
            |
| 549 | 
                +    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            |
| 550 | 
                +    user_id = request.POST.get('user_id', '')
               | 
            |
| 551 | 
                +    activity_id = request.POST.get('activity_id', '')
               | 
            |
| 552 | 
                + content_type = get_query_value(request, 'content_type', val_cast_type='int')  | 
            |
| 553 | 
                +    page = request.POST.get('page', 1)
               | 
            |
| 554 | 
                +    num = request.POST.get('num', 20)
               | 
            |
| 555 | 
                +  | 
            |
| 556 | 
                + contributions = MemberActivityContributionInfo.objects.filter(content_type=content_type, status=True)  | 
            |
| 557 | 
                + if user_id:  | 
            |
| 558 | 
                + contributions = contributions.filter(user_id=user_id)  | 
            |
| 559 | 
                + if activity_id:  | 
            |
| 560 | 
                + contributions = contributions.filter(activity_id=activity_id)  | 
            |
| 561 | 
                +    contributions = contributions.order_by('-pk')
               | 
            |
| 562 | 
                + contributions, left = pagination(contributions, page, num)  | 
            |
| 563 | 
                + contributions = [contribution.data for contribution in contributions]  | 
            |
| 564 | 
                +  | 
            |
| 565 | 
                +    return response(data={
               | 
            |
| 566 | 
                + 'contributions': contributions,  | 
            |
| 567 | 
                + 'left': left,  | 
            |
| 568 | 
                + })  | 
            |
| 569 | 
                +  | 
            |
| 570 | 
                +  | 
            |
| 571 | 
                +@logit  | 
            |
| 572 | 
                +def activity_contribute_detail(request):  | 
            |
| 573 | 
                +    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            |
| 574 | 
                +    contribution_id = request.POST.get('contribution_id', '')
               | 
            |
| 575 | 
                +  | 
            |
| 576 | 
                + try:  | 
            |
| 577 | 
                + contribution = MemberActivityContributionInfo.objects.get(contribution_id=contribution_id, status=True)  | 
            |
| 578 | 
                + except MemberActivityContributionInfo.DoesNotExist:  | 
            |
| 579 | 
                + return response(MemberActivityContributionStatusCode.ACTIVITY_CONTRIBUTION_NOT_FOUND)  | 
            |
| 580 | 
                +  | 
            |
| 581 | 
                + return response(data=contribution.data)  | 
            
                @@ -229,6 +229,8 @@ urlpatterns += [  | 
            ||
| 229 | 229 | 
                url(r'^member/activity/group_share$', member_views.activity_group_share, name='member_activity_group_share'),  | 
            
| 230 | 230 | 
                 | 
            
| 231 | 231 | 
                url(r'^member/activity/contribute$', member_views.activity_contribute, name='member_activity_contribute'),  | 
            
| 232 | 
                + url(r'^member/activity/contribute/list$', member_views.activity_contribute_list, name='member_activity_contribute_list'),  | 
            |
| 233 | 
                + url(r'^member/activity/contribute/detail$', member_views.activity_contribute_detail, name='member_activity_contribute_detail'),  | 
            |
| 232 | 234 | 
                 | 
            
| 233 | 235 | 
                url(r'^rights$', member_views.rights, name='rights'),  | 
            
| 234 | 236 | 
                url(r'^right/detail$', member_views.right_detail, name='right_detail'),  | 
            
                @@ -99,7 +99,7 @@ class MemberActivityGroupShareInfoAdmin(admin.ModelAdmin):  | 
            ||
| 99 | 99 | 
                 | 
            
| 100 | 100 | 
                 | 
            
| 101 | 101 | 
                class MemberActivityContributionInfoAdmin(admin.ModelAdmin):  | 
            
| 102 | 
                -    list_display = ('contribution_id', 'activity_id', 'content_type', 'title', 'content', 'images', 'status', 'created_at', 'updated_at')
               | 
            |
| 102 | 
                +    list_display = ('contribution_id', 'activity_id', 'content_type', 'title', 'content', 'images', 'video_url', 'status', 'created_at', 'updated_at')
               | 
            |
| 103 | 103 | 
                     list_filter = ('activity_id', 'content_type', 'status')
               | 
            
| 104 | 104 | 
                 | 
            
| 105 | 105 | 
                 | 
            
                @@ -0,0 +1,19 @@  | 
            ||
| 1 | 
                +# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                +# Generated by Django 3.2.16 on 2022-10-23 07:10  | 
            |
| 3 | 
                +  | 
            |
| 4 | 
                +from django.db import migrations, models  | 
            |
| 5 | 
                +  | 
            |
| 6 | 
                +  | 
            |
| 7 | 
                +class Migration(migrations.Migration):  | 
            |
| 8 | 
                +  | 
            |
| 9 | 
                + dependencies = [  | 
            |
| 10 | 
                +        ('member', '0035_memberactivitycontributioninfo'),
               | 
            |
| 11 | 
                + ]  | 
            |
| 12 | 
                +  | 
            |
| 13 | 
                + operations = [  | 
            |
| 14 | 
                + migrations.AddField(  | 
            |
| 15 | 
                + model_name='memberactivitycontributioninfo',  | 
            |
| 16 | 
                + name='video_url',  | 
            |
| 17 | 
                + field=models.CharField(blank=True, help_text='视频链接', max_length=255, null=True, verbose_name='video_url'),  | 
            |
| 18 | 
                + ),  | 
            |
| 19 | 
                + ]  | 
            
                @@ -692,6 +692,7 @@ class MemberActivityContributionInfo(BaseModelMixin):  | 
            ||
| 692 | 692 | 
                # 'height': 100,  | 
            
| 693 | 693 | 
                # }]  | 
            
| 694 | 694 | 
                images = JSONField(_(u'images'), default=[], help_text=u'图片列表')  | 
            
| 695 | 
                + video_url = models.CharField(_(u'video_url'), max_length=255, blank=True, null=True, help_text=u'视频链接')  | 
            |
| 695 | 696 | 
                 | 
            
| 696 | 697 | 
                class Meta:  | 
            
| 697 | 698 | 
                verbose_name = _(u'会员活动投稿信息')  | 
            
                @@ -711,4 +712,5 @@ class MemberActivityContributionInfo(BaseModelMixin):  | 
            ||
| 711 | 712 | 
                'title': self.title,  | 
            
| 712 | 713 | 
                'content': self.content,  | 
            
| 713 | 714 | 
                'images': self.images,  | 
            
| 715 | 
                + 'video_url': self.video_url or '',  | 
            |
| 714 | 716 | 
                }  | 
            
                @@ -95,6 +95,11 @@ class MemberActivityStatusCode(BaseStatusCode):  | 
            ||
| 95 | 95 | 
                ACTIVITY_NOT_FOUND = StatusCodeField(503701, 'Activity Not Found', description=u'活动不存在')  | 
            
| 96 | 96 | 
                 | 
            
| 97 | 97 | 
                 | 
            
| 98 | 
                +class MemberActivityContributionStatusCode(BaseStatusCode):  | 
            |
| 99 | 
                + """ 会员活动投稿相关错误码 5038xx """  | 
            |
| 100 | 
                + ACTIVITY_CONTRIBUTION_NOT_FOUND = StatusCodeField(503801, 'Activity Contribution Not Found', description=u'活动投稿不存在')  | 
            |
| 101 | 
                +  | 
            |
| 102 | 
                +  | 
            |
| 98 | 103 | 
                class MemberCouponStatusCode(BaseStatusCode):  | 
            
| 99 | 104 | 
                """ 会员优惠券相关错误码 5040xx """  | 
            
| 100 | 105 | 
                USER_COUPON_NOT_FOUND = StatusCodeField(504001, 'User Coupon Not Found', description=u'用户优惠券不存在')  |